package com.xigua._位或运算;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 给定一个正整数，检查它的二进制表示是否总是 0、1 交替出现：
 * 换句话说，就是二进制表示中相邻两位的数字永不相同。
 * @date 2022/3/280:22
 */
public class _693_交替位二进制数 {

    public static void main(String[] args) {
        hasAlternatingBits(10);
    }

    public static boolean hasAlternatingBits(int n) {
        if (n <= 2) return true;
        boolean flag = (n & 1) == 1;
        while (n>0){
            if ((n&1) == 0){
                if (flag) return false;
                flag = !flag;
            }else {
                if (!flag) return false;
                flag = !flag;
            }
            n = n>>1;
        }
        return true;
    }

}
